﻿using NWNT.Dal.Database;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace NWNT.Dal
{
    public interface IUnitOfWork
    {
        /// <summary>
        /// Saves this instance.
        /// </summary>
        void Save();

        IGenericRepository<Permission> PermissionRepository { get; }

        IGenericRepository<Role> RoleRepository { get; }

        IGenericRepository<UserInfo> UserInfoRepository { get; }

        IGenericRepository<UserProfile> UserProfileRepository { get; }

        IGenericRepository<RolePermissionMapping> RolePermissionMappingRepository { get; }

        IGenericRepository<UserRoleMapping> UserRoleMappingRepository { get; }

        IGenericRepository<Country> CountryRepository { get; }

        IGenericRepository<State> StateRepository { get; }

        IGenericRepository<UserType> UserTypeRepository { get; }

        IGenericRepository<Prefix> PrefixRepository { get; }

        IGenericRepository<QuestionArea> QuestionAreaRepository { get; }

       // IGenericRepository<bool> UpdateQuestionAreaRepository { get; }

        IGenericRepository<Questionnaire> QuestionnaireRepository { get; }

        IGenericRepository<QuestionnaireAreaOptionMapping> QuestionnaireAreaOptionMappingRepository { get; }

        IGenericRepository<QuestionnaireOption> QuestionnaireOptionRepository { get; }

        IGenericRepository<Quote> QuoteRepository { get; }

        IGenericRepository<StressResult> StressResultRepository { get; }

        IGenericRepository<StressResultDetail> StressResultDetailRepository { get; }

        IGenericRepository<MediaType> MediaTypeRepository { get; }

        IGenericRepository<Media> MediaRepository { get; }

        NwnthealthcareEntities Context { get; }
    }
}
